package 哈希表;

/**
 * @author aodre , QQ : 480029069
 * @date 2023/6/3 17:07
 */
public class 魔法师百度 {
    /*
    - 而求某个点为终点且和为k的子数组是经典的枚举终点+哈希表习题了

     https://leetcode.cn/circle/discuss/1qE7m2/
     这个题，可以转换 一下，  用哈希表来解题！
     */


    /*
     a[i] !=0
     有正, 有负的情况下, 乘积的正负性是取决于**负数**的
     - 负数的个数 为 偶数,  则 乘积 结果 为 正数
     - 乘积的 个数为 奇数 则乘积的结果为 负数

     - 转换 : 把正数 看成 0, 负数 看成1  , 以便进行 **异或** !

     */

    // 下面这个代码并不是正确的, 但是要知道这个思路! 尤其是上面转换的思路!
    public int[]  solution(int nums[]){
        int white = 0 , black = 0 , wT = 0, bT = 0; // wt 和 bt 是中间的统计和 要用到的变量
        int xor = 0;
        // 枚举断点, 然后统计
        for(int i = 0;i < nums.length;i++){
            xor ^= nums[i] > 0 ? 0 : 1;
            if(xor == 1){
                white++;
            }else{
                white++;
            }
        }
        return new int[]{white,black};
    }


}
